/*
 * @Description: 入口
 * @Autor: HuiSir<www.zuifengyun.com>
 * @Date: 2022-05-07 11:33:39
 * @LastEditTime: 2022-07-05 18:39:41
 */
import Micro, { IServerOpts, IRequestMessage, IResult, IResultMessage } from './lib/Micro.js'
import { IObj } from './common/types'
import useConfig from './hooks/useConfig.js'
import useResult from './hooks/useResult.js'
import log, { print } from './hooks/useLog.js'
import useRedisPool, { Pool as RedisPool } from './hooks/useRedisPool.js'
import useMysqlPool, { Pool as MysqlPool } from './hooks/useMysqlPool.js'
import register from './hooks/useRegister.js'
import createSqlModel from './hooks/useCreateSqlModel.js'
import useResponseError, { IResErrCatch } from './hooks/useResponseError.js'
import useClassDecorators from './hooks/decorators/useClassDecorators.js'
import useMethodDecorators from './hooks/decorators/useMethodDecorators.js'
import useParameterDecorators from './hooks/decorators/useParameterDecorators.js'
import usePropDecorators from './hooks/decorators/usePropDecorators.js'
import Encrypt from './helper/Encrypt.js'
import useToken from './hooks/useToken.js'
const resErr = useResponseError()

export default Micro
export {
    IObj,
    IServerOpts,
    IResult,
    IResultMessage,
    IRequestMessage,
    IResErrCatch,
    useConfig,
    useResult,
    register,
    log,
    print,
    RedisPool,
    MysqlPool,
    useRedisPool,
    useMysqlPool,
    createSqlModel,
    resErr,
    useClassDecorators,
    useMethodDecorators,
    useParameterDecorators,
    usePropDecorators,
    Encrypt,
    useToken
}